/**
 * 购物车相关API接口
 */
import { get, post, put, del } from '@/config/request.js'
import { getCurrentMemberId } from '@/utils/userState.js'

/**
 * 获取购物车列表
 * @returns {Promise} 购物车数据
 */
export const getCartList = () => {
  const memberId = getCurrentMemberId()
  if (!memberId) {
    return Promise.reject(new Error('用户未登录'))
  }
  return get('/cart/list', { memberId })
}

/**
 * 添加商品到购物车
 * @param {Object} data 商品信息
 * @param {number} data.productId 商品ID
 * @param {number} data.quantity 数量
 * @param {string} data.spec 规格
 * @returns {Promise} 添加结果
 */
export const addToCart = (data) => {
  const memberId = getCurrentMemberId()
  if (!memberId) {
    return Promise.reject(new Error('用户未登录'))
  }
  return post('/cart', { ...data, memberId })
}

/**
 * 更新购物车商品数量
 * @param {Object} data 更新信息
 * @param {number} data.id 购物车项ID
 * @param {number} data.quantity 新数量
 * @returns {Promise} 更新结果
 */
export const updateCartQuantity = (data) => {
  const memberId = getCurrentMemberId()
  if (!memberId) {
    return Promise.reject(new Error('用户未登录'))
  }
  return put('/cart', { ...data, memberId })
}

/**
 * 删除购物车商品
 * @param {number} id 购物车项ID
 * @returns {Promise} 删除结果
 */
export const deleteCartItem = (id) => {
  return del(`/cart/${id}`)
}

/**
 * 批量删除购物车商品
 * @param {Array<number>} ids 购物车项ID数组
 * @returns {Promise} 删除结果
 */
export const deleteCartItems = (ids) => {
  return del(`/cart/${ids.join(',')}`)
}

/**
 * 获取购物车商品详情
 * @param {number} id 购物车项ID
 * @returns {Promise} 商品详情
 */
export const getCartItem = (id) => {
  return get(`/cart/${id}`)
} 